package com.dys.testset08;

import java.util.HashSet;
import java.util.Set;

/**
 * @className: com.dys.testset.HashSetTest
 * @description: com.dys.testset
 * @author: pine cone
 * @version: v1.0.0
 * @createTime: 2024/08/06 下午10:23
 */
public class HashSetTest {

    /**
     * 这是一个main()方法,是应用程序的入口
     *
     * @param args 方法的形参列表,是一个字符串数组,包含了从命令行传递给程序的参数
     */
    public static void main(String[] args) {
        new HashSetTest().testStudent();
    }

    /**
     * 往HashSet中放入Integer类型的数据
     * 唯一，无序: 输出的结果也不会按照升序或降序进行排序
     */
    public void testInt() {
        HashSet<Integer> hashSet = new HashSet<>();
        hashSet.add(11);
        hashSet.add(22);
        hashSet.add(33);
        System.out.println("是否加入到集合中了？" + hashSet.add(44));
        System.out.println("是否加入到集合中了？" + hashSet.add(44));
        System.out.println(hashSet.size());
        System.out.println(hashSet);
    }

    /**
     * 往Set中放入String类型的数据
     * 唯一，无序: 输出的结果也不会按照升序或降序进行排序
     */
    public void testString() {
        Set<String> hashSet = new HashSet<>();
        hashSet.add("hello");
        hashSet.add("world");
        hashSet.add("hi");
        hashSet.add("hello");
        System.out.println(hashSet.size());
        System.out.println(hashSet);
    }

    /**
     * 往Set中放入自定义的数据
     * 放入自定义的引用数据类型，似乎不满足唯一，无序的特点了--->一定要重写equals和hashCode才能保证唯一和无序
     */
    public void testStudent() {
        Set<Student> hs = new HashSet<>();
        hs.add(new Student("张淑娜", 20));
        hs.add(new Student("李思思", 18));
        hs.add(new Student("张淑娜", 20));
        hs.add(new Student("成龙", 33));
        System.out.println(hs.size());
        System.out.println(hs);
    }
}
